#ifndef COMMON_H
#define COMMON_H
#include <QString>
#include <QUrl>
#include <QWidget>
#include "../../libjson/libjson.h"

#define _T(x)   QString::fromWCharArray(L ## x)

#define PAGE_SIZE       4



namespace ad
{
    bool    http_request(const char* url, QString& err,
                        JSONNode* json = NULL,
                        QWidget* parent = NULL,
                        QByteArray* post = NULL);
    char*   get_file_data(const char* filepath);

    // json 解析动作
    bool    json_parse(JSONNode &json, json_string str, QString* err = NULL);
    bool    json_check(JSONNode &json, json_string name, char type);
    bool    json_check(JSONNode &json, json_index_t index, char type);
    bool    json_is_string(JSONNode &json, json_string name);
    bool    json_is_array(JSONNode &json, json_string name);
    bool    json_is_array(JSONNode &json, json_index_t index);
    int     json_get_int(JSONNode &json, json_string name, int def = 0);
    int     json_get_int(JSONNode &json, json_index_t name, int def = 0);
    float   json_get_float(JSONNode &json, json_string name, float def = 0.0f);
    QString json_get_string(JSONNode &json, json_string name, wchar_t* def = L"");
    QString json_get_string(JSONNode &json, json_index_t name, wchar_t* def = L"");
    bool    json_get_node(JSONNode &json, json_string name, JSONNode &node);
}

#endif // COMMON_H
